/*
 * @author: Victor
 * @Date: 2021-11-25 18:26:07
 * @LastEditTime: 2021-11-26 15:16:27
 */
$(function () {
  // 点击注册链接显示注册盒子
  $('#link-reg').click(function () {
    $('#reg-box').show().siblings('#login-box').hide();
  });
  // 点击登录链接显示登录盒子
  $('#link-login').click(function () {
    $('#login-box').show().siblings('#reg-box').hide();
  });
  // 设置自定义校验规则
  // 1 生成form对象
  var form = layui.form;
  // 2 调用verify方法设置自定义规则
  form.verify({
    username: function (v) {
      var usernamePattern = /^\w{3,10}$/;
      if (!usernamePattern.test(v)) {
        return '用户名只能是3-10位的英文大小写字母及数字及_';
      }
    },
    pwd: [/^[\S]{6,12}$/, '密码必须6到12位，且不能出现空格'],
    repwd: function (v) {
      // 形参v表示验证时对应Input中的内容
      // 获取密码内容
      var pswd = $('#reg-box input[name=password]').val();
      // 若v不等于获取到的密码则验证失败，报错
      if (v != pswd) {
        return '两次输入密码不一致';
      }
    },
  });

  // 获取layer对象 实现弹出层相关效果
  var layer = layui.layer;
  // 提交注册表单 发起ajax请求
  $('#reg-form').submit(function (e) {
    // 阻止默认行为
    e.preventDefault();
    // 发起post请求 http://api-breakingnews-web.itheima.net
    var data = {
      username: $('#reg-form [name=username]').val(),
      password: $('#reg-form [name=password]').val(),
    };
    $.post('/api/reguser', data, function (res) {
      if (res.status != 0) {
        return layer.msg(res.message);
      }
      layer.msg('注册成功,请登录!');
      // 模拟登录链接点击事件 显示登录表单
      $('#link-login').click();
    });
  });

  // 提交登录表单 发起ajax请求
  $('#login-form').on('submit', function (e) {
    e.preventDefault();
    $.ajax({
      url: '/api/login',
      type: 'post',
      // 快速获取表单数据
      data: $(this).serialize(),
      success: function (res) {
        if (res.status != 0) {
          return layer.msg(res.message);
        }
        // 登录成功
        // 提示登录成功信息
        layer.msg('登录成功！');
        // 将响应的token存到本地存储中 token相当于合法身份证明，后面请求需要身份的内容时需要带上该token
        localStorage.setItem('token', res.token);
        // 跳转到index.html
        location.href = 'index.html';
      },
    });
  });
});
